from flask import session, current_app
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand  # 迁移数据库
from info import create_app, db, models
import logging


# 通过传入不同的参数来调用对应的配置环境
# create_app类似与工厂方法
from info.models import User

app = create_app("Production")

manager = Manager(app)
# 将app 和 db关联
Migrate(app, db)
# 将迁移命令添加到manager中
manager.add_command('db', MigrateCommand)


@manager.option('-n', '-name', dest='name')
@manager.option('-p', '-password', dest='password')
def createsuperuser(name, password):

    if not all([name, password]):
        print('参数不足！')

    user = User()
    user.nick_name = name
    user.mobile = name
    user.password = password
    user.is_admin = True

    try:
        db.session.add(user)
        db.session.commit()
    except Exception as e:
        db.session.roolback()
        current_app.logger.error(e)
        print(e)

    print('添加成功')


if __name__ == '__main__':
    manager.run()